// Schema  结构   Schema主要用于定义MongoDB中集合Collection里文档document的结构
// 表结构
// 每个schema会映射到mongodb中的一个collection，schema不具备操作数据库的能力

// 定义Schema非常简单，指定字段名和类型即可，支持的类型包括以下8种
// String      字符串
// Number      数字
// Date        日期
// Buffer      二进制
// Boolean     布尔值
// Mixed       混合类型
// ObjectId    对象ID
// Array       数组

var mongoose = require("mongoose");
var Schema = mongoose.Schema;

var users_schema = new Schema({
    password: String,
    username: String,
    role: Number,
    phone: String,
    avatar: String,
    age: Number,
    sex: Number,
    commentArr: Array, //评论数组
    starArr: Array, //点赞数组
    collectArr: Array, //收藏数组
});

exports.Users = mongoose.model("users", users_schema);

var category_schema = new Schema({
    name: String,
    code: String,
    details: String,
    logo: String,
});

exports.Category = mongoose.model("categories", category_schema);
// 选择题表单
var chooses_schema = new Schema({
    subject: String, //题目
    code: String, //专业类型
    answer: Array, //答案
    phone: String, //发布人
    time: Date, //发布时间
    status: Number, //审核状态
    many: Boolean, //单选或者多选（单选为false）
    correct: String, //正确答案
    heat: Number, //热度
    choosesRole: Number, //题目权限
    technology: String, //相关技术
    shouchang: Number, //收藏
    dianzan: Number, //点赞
});

exports.Chooses = mongoose.model("chooses", chooses_schema);

// 套题表单
var paper_schema = new Schema({
    title: String, //套题名字
    code: String, //专业类型
    amount: Number, //数量
    many: Boolean, //单选或者多选（单选为false）
    heat: Number, //热度
    technology: String, //相关技术
    shouchang: Number, //收藏
    dianzan: Number, //点赞
    subjects: Array, //题目
});

exports.Paper = mongoose.model("papers", paper_schema);

var experience_schema = new Schema({
    title: String, //题目
    code: String, //专业类型
    phone: String, //发布人
    time: Date, //发布时间
    status: Number, //审核状态
    heat: Number, //热度
    content: String, //内容
    comment: Array, //评论
    collect: Number, //收藏
    star: Number, //点赞
    avatar: String, //头像
    username: String, //用户名
});

exports.Experience = mongoose.model("experiences", experience_schema);


// 反馈建议
var advise_schema = new Schema({
    category: Array,//类型
    content: String,//内容
    title: String,//标题
    phone: String,//提交人手机号
    time: Date,//提交时间
    username: String,//提交人姓名
    status: Number //审核状态
});

exports.Advise = mongoose.model("advise", advise_schema);

var announce_schema = new Schema({
    title: String, //标题
    type: String, //公告类型
    phone: String, //发布人
    startTime: Date, //发布起始时间
    endTime: Date, //发布起始时间
    content: String, //内容
    isAnnon: Boolean, //是否仅通知管理员
    avatar: String, //头像
    username: String, //用户名
});

exports.Announce = mongoose.model("announces", announce_schema);
